<?php
declare(strict_types=1);

use think\helper\Str;
use Phinx\Migration\AbstractMigration;

final class AddUserSalt extends AbstractMigration
{
    /**
     * Change Method.
     *
     * Write your reversible migrations using this method.
     *
     * More information on writing migrations is available here:
     * https://book.cakephp.org/phinx/0/en/migrations.html#the-change-method
     *
     * Remember to call "create()" or "update()" and NOT "save()" when working
     * with the Table class.
     */
    public function change(): void
    {
        $salt = Str::random(8);
        $user = [[
            'username'=>'admin',
            'password'=>md5(md5('123456').$salt),
            'create_time'=>date('Y-m-d H:i:s'),
            'update_time'=>date('Y-m-d H:i:s'),
            'salt'  =>$salt,
            'status'=>1
        ]];
        $model = $this->table('user');
        $model->addColumn('salt', 'string', ['limit'=>32]);
        $model->update();
        $model->insert($user)->saveData();
    }
}
